package zilvic.game.room.entity.trigger;

import java.awt.Graphics;
import org.duncan.Math2D.Point2D;
import zilvic.game.room.entity.Collidable;
import zilvic.game.room.entity.Entity;
import zilvic.game.room.entity.Interactable;
import zilvic.resources.Parsable;

/**
 *
 * @author Duncan
 */
public abstract class Trigger extends Entity implements Collidable, Interactable, Parsable {
    public Trigger(Point2D position) {
        super (position);
    }

    /**
     * Is called when the character is attempting to move into this trigger.
     * @return True if the character is allowed to pass. Else false.
     */
    public abstract boolean collideWith();

    /**
     * Is called whenever the character is trying to interact with this. Usually
     * called when the player is attempting to attack something.
     */
    public void firstHandInteraction() {

    }

    /**
     * Is called whenever the character is trying to interact with this.
     * Usually called when the player is attmepting to open something, talk to
     * someone etc.
     */
    public void secondHandInteraction() {

    }

    @Override
    public void paint(Graphics g, byte step) {
        
    }
}
